//
//  GGDataBase.h
//  TestAppDelegateService
//
//  Created by yuemei on 2017/9/21.
//  Copyright © 2017年 yuemei. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface GGDataBase : NSObject

/**
    Key-Value形式持久化对象

    磁盘持久化时,为考虑性能问题,YYCache进行了以下处理:
    内容>20k使用文件存储,内容<20K使用SQL存储
 
    内存持久化,杀掉程序后自动清空,所以不提供移除方法.
 
    ps.如果保存的自定义对象不遵守NSCoding的协议或不实现NSCoding协议的方法，就不能使用磁盘持久化.
 */

NS_ASSUME_NONNULL_BEGIN
#pragma mark - 内存+磁盘持久化
+ (instancetype)shareDataBase;
//存储数据
- (void)setCacheWithData:(id)data Key:(NSString *)key;

//获取数据
- (id)getCacheForKey:(NSString *)key;

//移除数据
- (void)removeCacheWithKey:(NSString *)key;

//移除所有数据
- (void)removeAllCache;

//获取缓存数据大小
- (NSInteger)getAllCacheSize;

#pragma mark - 内存持久化
//存储数据
- (void)setMemoryCacheWithData:(id)data Key:(NSString *)key;

//获取数据
- (id)getMemoryCacheForKey:(NSString *)key;
NS_ASSUME_NONNULL_END
@end
